package br.com.devschool.managedbean;

import java.util.Date;
import java.util.List;

import br.com.devschool.entity.Disciplina;
import br.com.devschool.service.DisciplinaService;

/**
 * @author ATILLA
 * 
 */
public class MainTest {

	public static void main(String arg[]) {
		DisciplinaService service = new DisciplinaService();

		Disciplina objDisciplina = new Disciplina(0, new Date(), 2,	"Preparação do ambiente");
		// Teste salvar
		try {
			if (service.save(objDisciplina)) {
				System.out.println("\nRegistro salvo!\n");
			} else {
				System.out.println("\nNão salvou!\n");
			}
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		objDisciplina = new Disciplina(7, new Date(), 20, "Hibernate");
		// Teste atualizar
		try {
			if (service.update(objDisciplina)) {
				System.out.println("\nRegistro atualizado!\n");
			} else {
				System.out.println("\nNão atualizou!\n");
			}
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		objDisciplina = new Disciplina(10, new Date(), 2, "Concatenação");
		// Teste merge
		try {
			if (service.merge(objDisciplina)) {
				System.out.println("\nRegistro salvo ou atualizado!\n");
			} else {
				System.out.println("\nNão salvou/atualizou!\n");
			}
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		// Teste excluir
		try {
			if (service.delete(objDisciplina)) {
				System.out.println("\nRegistro excluido!\n");
			} else {
				System.out.println("\nNão excluiu!\n");
			}
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		// Teste nextval
		try {
			Integer nextval = service.nextvalById();
			System.out.println("\nValor do nextval: " + nextval);
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		// Teste findById
		try {
			Disciplina objTemp = service.findById(2);
			System.out.println("\nTitulo: " + objTemp.getTitulo());
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}

		System.out.println("\n\n\n");

		// Teste findAll
		try {
			List<Disciplina> resultFind = service.findAll();
			for (Disciplina d : resultFind) {
				System.out.println("\nTitulo: " + d.getTitulo());
			}
		} catch (Exception e) {
			System.out.println("\n\nErro! " + e.getMessage());
		}
	}
}